package com.weilian.ordering.util;

import android.util.Log;

/**
 * Android 日志工具
 * DEBUG_MODE 开关 true ; false;
 * @author Sojex
 *
 */
public final class Logger {
	/** 调试开关 true or false */
	private static final boolean DEBUG_MODE = true;
	private static String TAG = Logger.class.getSimpleName();
	private static Logger log;
	
	public static Logger getLogger(Class<?> clazz) {
//		if (log == null)
			log = new Logger(clazz.getPackage().getName()+"."+clazz.getSimpleName());
		return log;
	}
	public static Logger getLogger(String TAG) {
//		if (log == null)
			log = new Logger(TAG);
		return log;
	}
	
	
	private Logger(Class<?> clazz){
		TAG = clazz.getPackage().getName()+"."+clazz.getSimpleName();
	}
	
	private Logger(String tag) {
		// TODO Auto-generated constructor stub
		TAG = tag;
	}
	
	public void i(String msg) {
		info(msg);
	}

	public void d(String msg) {
		debug(msg);
	}

	public void w(String msg) {
		warn(msg);
	}

	public void w(Throwable tr) {
		warn(tr);
	}

	public void e(String msg) {
		error(msg);
	}

	public void e(Throwable tr) {
		error(tr);
	}
	
	protected void info(String msg){
		if(DEBUG_MODE)
			Log.i(TAG, msg);
	}
	
	protected void error(String msg){
		if(DEBUG_MODE)
			Log.e(TAG, msg);
	}
	
	protected void error(Throwable tr){
		if(DEBUG_MODE)
			Log.e(TAG, tr.getClass().getSimpleName(), tr);
	}
	
	protected void debug(String msg){
		if(DEBUG_MODE)
			Log.d(TAG, msg);
	}

	protected void warn(String msg){
		if(DEBUG_MODE)
			Log.w(TAG, msg);
	}
	protected void warn(Throwable tr){
		if(DEBUG_MODE)
			Log.w(TAG, tr.getClass().getSimpleName(),tr);
	}
}
